package com.cx.singleton;

/**
 * @author zhangshuai
 * @version V1.0
 * @Project Java2_26
 * @Package com.cx.singleton
 * @Description:
 * @Date 2025/5/27 8:28
 */

public class HungurySingleton {
    //懒汉式：利用synchronized关键字，保证线程安全，但是每次获取实例时都要进行同步，效率较低,延迟加载，第一次使用时才创建实例
    //饿汉式：利用类加载机制，保证线程安全，在类加载时就完成了初始化，所以类加载较慢，但获取对象的速度快，没有延迟加载，用之前就创建好了
    //初始化静态变量实例
    private static final HungurySingleton instance = new HungurySingleton();
    //私有构造方法
    private HungurySingleton() {
        System.out.println("饿汉式单例模式");
    }
    //提供公共方法获取实例
    public static HungurySingleton getInstance(){
        return instance;
    }

    public static void main(String[] args) {
        /*for (int i = 0; i < 5; i++) {
            new Thread(()->{
                HungurySingleton instance = HungurySingleton.getInstance();
                System.out.println(instance);
            }).start();
            new Thread(()->{
                HungurySingleton instance = HungurySingleton.getInstance();
                System.out.println(instance);
            }).start();
            new Thread(()->{
                HungurySingleton instance = HungurySingleton.getInstance();
                System.out.println(instance);
            }).start();*/

    }
}